{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "框架\n",
    "\n",
    "    一、导入数据\n",
    "    二、原始序列的检验\n",
    "    三、一阶差分序列的检验\n",
    "    四、定阶（参数调优)\n",
    "    五、建模与预测\n",
    "    \n",
    "    参考材料：《Python数据分析与挖掘实践》"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 工具准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\"\n",
    "\n",
    "from matplotlib.pylab import style #自定义图表风格\n",
    "style.use('ggplot')\n",
    "\n",
    "# 解决中文乱码问题\n",
    "plt.rcParams['font.sans-serif'] = ['Simhei']\n",
    "# 解决坐标轴刻度负号乱码\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "#pip install statsmodels\n",
    "from statsmodels.graphics.tsaplots import plot_acf,plot_pacf  #自相关图、偏自相关图\n",
    "from statsmodels.tsa.stattools import adfuller as ADF #平稳性检验\n",
    "from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验\n",
    "import statsmodels.api as sm #D-W检验,一阶自相关检验\n",
    "from statsmodels.graphics.api import qqplot #画QQ图,检验一组数据是否服从正态分布\n",
    "from statsmodels.tsa.arima_model import ARIMA"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一、导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>销量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>日期</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2015-01-01</td>\n",
       "      <td>3023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-01-02</td>\n",
       "      <td>3039</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-01-03</td>\n",
       "      <td>3056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-01-04</td>\n",
       "      <td>3138</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-01-05</td>\n",
       "      <td>3188</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              销量\n",
       "日期              \n",
       "2015-01-01  3023\n",
       "2015-01-02  3039\n",
       "2015-01-03  3056\n",
       "2015-01-04  3138\n",
       "2015-01-05  3188"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sale=pd.read_excel('./arima_data.xls',index_col='日期')\n",
    "sale.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>销量</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>日期</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2015-02-02</td>\n",
       "      <td>4493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-02-03</td>\n",
       "      <td>4560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-02-04</td>\n",
       "      <td>4637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-02-05</td>\n",
       "      <td>4755</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2015-02-06</td>\n",
       "      <td>4817</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              销量\n",
       "日期              \n",
       "2015-02-02  4493\n",
       "2015-02-03  4560\n",
       "2015-02-04  4637\n",
       "2015-02-05  4755\n",
       "2015-02-06  4817"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sale.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 37 entries, 2015-01-01 to 2015-02-06\n",
      "Data columns (total 1 columns):\n",
      "销量    37 non-null int64\n",
      "dtypes: int64(1)\n",
      "memory usage: 592.0 bytes\n",
      "-----\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 37 entries, 2015-01-01 to 2015-02-06\n",
      "Data columns (total 1 columns):\n",
      "销量    37 non-null float64\n",
      "dtypes: float64(1)\n",
      "memory usage: 592.0 bytes\n"
     ]
    }
   ],
   "source": [
    "sale.info()\n",
    "print('-----')\n",
    "sale.销量=sale.销量.astype('float')\n",
    "sale.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、原始序列的检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 时序图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x258d6f017c8>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "sale.plot()\n",
    "plt.show()\n",
    "\n",
    "#解读：具有单调递增趋势，则是非平稳序列。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 自相关图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:1: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEGCAYAAACJnEVTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de7hkVXnn8e+qy+krHLo53A4Xudgo7QOtbVRIUJoMeCHMPIi4MDomOsk0Y5AnYTKJGnwmQtAkZoaEMZHYCSjyRPSVOIQJXpBRg2ZEoYl0a6JgYyPQ3cChm9O3c6nLmj/2Pl11quu6T11P/T7Ps5+q2nvtXW/tU+fdu9Zeey0XQkBERIZDqtcBiIhI9yjpi4gMESV9EZEhoqQvIjJElPRFRIaIkr6IyBBR0peucc6d5ZwLzrkLeh1LLzjnNjjntndgu9udcxvavV1ZnJT0pZveXPHYkHPuPc65b3UmnMHgnPuMc+4jdYqcA3ynS+HIgFPSl256M/BNWkj60lgIYW8IId/rOGQwKOlLVzjnlgFvAP4YWOecOz6eH5xzp5aV+4xz7iPOuTc75wLwaeCCuFxwzh0Vl3POud93zj3pnNvpnPtT51y2bDtvdc79q3Nun3PuK865U8qWvcY596Bzbq9z7uvOuTPKlr3HOfct59y6+PEbZctOjWM42jl3h3Nuj3NuSdny33LO/dQ594Jz7mbnXKbJfXOec26zc+6gc26rc+78eP6fxPvg14E/jN/7B1XWP6x6xzk34pz7M+fcrngf/a5zzpXt4z9yzv1FvH+ecM79YjOxyuBT0pdu2QDMAP8X+Bnwpgbl7wdWAVcD/xw/XwVMxsuvBq4B3gW8Bfj3wA0QJXXgTuB6YC2wF/jbeNkJ8ba/CJwN/Bi4Lz4ozTkO+AJwO/C7VWL738BPgcuAXLxdD/wZ8D6ig9ulwO80+IzEifguov1yOvAZYFO8+CPxZ74T+NP4+esbbTP2MaJ9/Cbg3fHn2Fi2fCPR///ZwENEB2MZAk2diYi0wZuBB0MIRefcP8evb69VOK6ueNE5dxDIhxBerChyNXBjCOE7AM653wc+B3wI+E3grhDCF+Jlvwv8QrzerwH/GkL4n/Gya4G3A5cAfx+XeTnwhhDCt2uEd18I4caKeb8J3B5C+Hq83b8BrgD+R63PWObVwItEB6ijgZfF+2AamHbOzQLTVfZBVfGB5H3A5SGER+N5HwPeD3wqLvYs8NshhOCcuw3462a2LYNPSV+65c3Aqc65F4GlwH7nXLVfmsub3N5LgG1lr38KHOGcWwWcDGyeWxBCeBp4utp6IYR83KLmlNKm2Fwn4QP8RZV5JwHnO+feGb/OEv3CqCtOulcD/wX4ObCVhf8CP4ZoP1bun/LPeH8o9bY4A7gFvqcMCFXvSMfFdfZnAm8FXklU/XE08Jq4SDoulwLWV6xepHpC2g68tOz1GmBvCGEPUfI8vez9z4jryldUrhfXu58KPFm2rf31Pk8Iodryp4iqYF4ZT+uAN9bbTvz+FwC/D7wyhPBq4ONVitXaB7U8Dxzg8P1T/hkbHpBkcVLSl254CzABfDWEsD2E8H3gMaKz/6co1VN/kOiMudxjwNnOuTXOuTOdc+vi+X8FXOec+yXn3CuJEu5fxctuBd7mnLvSOXcy8IdEB4QDwB3AWfGFzZcAf06UIL+8wM/4t8CVRGfZaeDDwG1NrHcEEIBVzrlXx7HPVdHMeQzY4Jw7wTn3C865E+ttMD6DvwX4eHxB+vVE1V5/2eJnkkVISV+64U1E1QnFsnn3ESX9a4EbnXP/BowBVr5iCOFBogub3yeqspn7dfBJ4BNEFzm/CvwfouROCOEh4FeJLoT+iOgC6DviZTuBiwFPVJXycuBNcf15YiGELxIl1c8DjwLHEx0EGvkq0Wd+kOiaxGeJzuzLf/H8FdEF7CeAe4n2UyPXAV+Lp78DbgL+pon1ZJFzGkRFRGR46ExfRGSIKOmLiAwRJX0RkSGipC8iMkT6/eYsXWUWEUmm6r0d/Z702bFjR+J1x8bGmJiYaGM0nTEocYJi7RTF2hnDGuv4+HjNZareEREZIkr6IiJDRElfRGSIKOmLiAwRJX0RkSHS9613kgjFAmx9hP0v7CIcfTycvR6XSvc6LBGRnkuc9L33xwF3mVnV4du891ngS8Bq4FYzu63avKTvX0soFij++R/Czx7jwOwMjCyB084kde31SvwiMvQSVe9471cRDXW3ok6xa4DNZvZLwBXe+yNqzGuvrY/Azx6DmWkIIXr82WPRfBGRIZf0TL9A1Ff4P9Qps4FoUAyAB4jGKK0275vlK3nvNxIP4GxmjI0103V4yf4XdkVn+OVmZ1i2excrW9xWt2QymZY/Z68o1s5QrJ2hWKu8T5KVzGwvgPe+XrEVwDPx893AcTXmVW57E9GgGQCh1TvUwtHHR1U6M2VjYowsYWr18Uz36Z15w3rXYKcp1s5QrJ2xGO7I3Q8si5+vjN+r2rz2Ons9nHYmUwGKAViyFE47M5ovItJHQrFIKBYI+TwhlyPkZgmzM4TK2oo26mTrnc3A+cBdRINEP1hjXlu5VJrUtdfzv971dk7POq685vfUekdEFiyEAIVCNBXjqZCHQhGKxXhenechAHNnoyF+XZKbGIXJyehFOgMvPasjn6MtSd97/8vAWjMrH3j5duDL3vvXA2uB7xFV7VTOazuXSvNILsVWsrxj3WsaryAiQyUU4+RdyJcS+bzX+VJyz+dLyXsRWFDSN7MN8eM3gG9ULHvSe38x0Zn9fzezAlBtnojIgoRiMUrU+Xgq5KBQID87RZh4/vCEPsRjg3f05iwz2wFYo3kiIrWEYhFyOcjPQm42fp6LHucSfY2z8GJuGvZNdjni/rYo78gVkcESCgWYnSmbZktJvqAKgXYayqQ/101DeGob7uQzdKFXpEtCLgez01GT6vIEX8j3OrShMXRJv7ybBmZnCOqmQaTtQrEYJ/cZmJkqPeqsveeGLunP66YB5nfToJY+Ii0LxQJMT8H0dJTYp+OzeA1x3ZeGLumHp7bFX8gyszOEp57AKemL1BUKBYr79xJ2Px8n+qmo3l0GxtAlfXfyGVGVTkU3De7k03sXlEgfCvl8fOYen71PH4R8jvxo2U1EMnCGLukf6qbh37awBEgtVTcNImF2pqz+fTpK9Plcr8OSDhi6pF/eTcOp6cCvqpsGGSKhUJh/YXVmJu6GvNjr0KRLhi7pQ6mbhkdy8E7V48siE93MNBs1hcyVNYvMzersXYYz6YsMstIdqmXT3B2rMzPRHapqOSM1KOmL9IFQKBBys6VuBeb6iJn3PE7wausuC6CkL9KCEEJU/x0oPRaL0fNDjwFCIXqcmzfXY2OhGC0rxL02xvNzRx6pFjHSFUr60lAolpJU8cB+woH9ccILFYkulOYf6sUwxAkylJ7PVT2U93R4WG3EAqsnQiB3YJKwZ0/Z+5WWzYttrm/zec/LYixP9Ko2kQGnpF/DYu6fJxQLkIu7n83PVRvk465n84edhZYn50Fqox0yKTiwr9dhiPQVJf0qBr1/nlAslFprHGrFMdd6I6/meSJDTEm/mgHpn2d+nydxfye5GV3oE5GaEid97/2tREMe3mtmN1ZZ/j7gyvjlUURDI14NPBFPANeY2dakMXRKP/bPEwpxgp+7LX4uyYuItCBR0vfeXw6kzew87/1t3vs1ZvZ4eRkzuwW4JS7/CaIxc88B7jSzDyww7o7ql/55wtRB2L83qpcuj0VEJKGkZ/obKA15eB/RmLePVyvovT8ROM7MHvbe/xZwqff+QmArcJWZ5SvKbwQ2ApgZY2NjiQLMZrM452qun81mAaouDxveyJ5/+jL7tmxmBEgtW0Z2zVpWbXgjLt3+Ov1MJsPY2FjUVnv/Xor7Jinu31e6e3LpkmjqA+l0mtHR0V6H0RTF2hmKtTPmxZrJMpIw9zWSNOmvAJ6Jn+8G6vVWdjXxGT/wEHCRme303n8WuAS4p7ywmW0CNsUvw8TERKIAc7kc2WyWWuvnclFCrbU8vP/D3Hyof57/RuHs9bywZ0+iWOoJxSKrM47dP98OBw/0/YDNo6OjTA5I6x3F2hmKtTPmxZrO4BLmPoDx8fGay1IJt7kfWBY/X1lrO977FHAh8K141hYz2xk/fxhYk/D9O26uf54vTadx617T9lY7oViI+iR/4icUdjwFB/b3fcIXkcGX9Ex/M1GVzoPAOuAnNcq9Hviemc1lszu89x8FfghcBnws4fsPrFAswJ4XYM+EWtmISNclPdO/G3i39/4mwAM/8t4f1oIHeBPwQNnrG4A7gB8A3zWz+xO+/8AJhQJh4lnY9hOYeFYJX0R6ItGZvpnt9d5vAC4GPm5mu4BHq5T7g4rXPyRqwTM0QqEAu5+HF3dHd7eKiPRQ4nb6ZraHUgseqSLMTMMzT2oMURHpG7ojN6FGffOEvXtg1w51eSAifUVJP4F6ffPgUvD8zuhirYhIn1HST6JG3zzh0e/jjj4Wpg72Nj4RkRqStt4ZalX75pmZga2blfBFpK8p6SfgTj4DRiq6RchmYey43gQkItIkJf0kzl4Pp53JVIBiCJAdgRNOgtPO7HVkIiJ1Kekn4FJpUtdez82TYPsKuEuvxF3xXlxKu1NE+puyVFIHD/DIgVm+tK+IO+PlSvgiMhCUqRIIszOw8+lehyEi0jIl/RaFYgGe+bm6VBCRgaSk36pdz8CsRrESkcGkm7NaEHY/D/uaH5AhFIvRTVzP7YBjx+G0M1X3LyI9paTfpHBwPzz/bPPli0XCXZ+O6v5zs6VmnWrlIyI9pOzThJDLwY6fAy2MbPWzx0oJH6LHnU9H80VEekRJv4EQAux4svVBT57bcXiXyrlZeG5n9fIiIl2gpN9Ibhamp1pf79jxqEqnXHYEjj2hPXGJiCSQuE7fe38rsBa418wOGyrRe58BnogngGvMbKv3/nrgEuD7ZnZ10vfvhpDPQT6XbOXTzoQTTmJq+zaWOEiNLFFXDSLSc4nO9L33lwNpMzsPON17v6ZKsXOAO81sQzxt9d6/mmhA9dcCz3nvL0oceYeFXA5mk4945VIp3BXv5eY9eXXVICJ9I+mZ/gZKQyXeR5TIH68ocy5wqff+QmArcBVwAfD3Zha8918D3gLMGxzde78R2AhgZoyNjSUKMJvN4pyruX42mwWouTz/5DYymWgkrNHR0aplMplM3eUAW/JptuThfetfV7NMOp2uu41+olg7Q7F2xsDGmskykjD3NZI06a8Anomf7wbWVynzEHCRme303n+WqEpnBbCtbL3D+iI2s03ApvhlmJiYSBRgLpcjm81Sa/1cLqq2qbY87H0Rdj5FPp8HYHKyetv8RsubLTM6Olp3eT9RrJ2hWDtjYGNNZ3AJcx/A+Ph4zWVJk/5+YFn8fCXVq4m2mNncSCMPA2uaXK+nQj4ftbwREVmEkibdzURVOgDrgO1VytzhvV/nvU8DlwGPNrlebz23o/XmmSIiAyJp0r8beLf3/ibAAz/y3le24LkBuAP4AfBdM7sf+A7wKu/9zcAHgTsTvn9HhP17W+pmYcHvVywStv2YqW9+hbDtx1G3DSIiHZSoesfM9nrvNwAXAx83s11EZ/LlZX5I1IKnfF4xbrHzK8DNZvazRFF3QCgU4NnuVeuUd9MwrW4aRKRLErfTN7M9lFrwtLLeFHBX0vftmOd3Jm+Tn0S9bhrOeHn34hCRoaJTSiAc2A+Te7r7puqmQUR6YOiTfigW4NlnGhdsN3XTICI9MPRJn4lnDz/j7oa5bhqKgWIIpTp9ddMgIh001Ek/FAqwZ3dP3ru8m4a7DgR10yAiXTG0GSaEALMztNRHfpu5VIpHpgN3HwB3xsuV8EWk44Z35KxcDkL/t4vXkIsi0k5DmfTD9FR3m2cmpCEXRaTdhi5zhBBg19P0slqnaRpyUUTabOiSPrsnYGa611E0R235RaTNhirph5kZeOHZXofRPLXlF5E2G5qkH0KAZ5+GMADVOnPUll9E2mxokj6zMzB1sNdRtKTZIRfneusM3/2GeusUkbqGsvXOIJlry//IdOCdVTpiUwsfEWmFssKgUwsfEWmBkv6gUwsfEWmBqncG3VwLn/LEX9HCR3f1isicxEnfe38rsBa418wqh0rEez8KfB5IAweAK4Ei8EQ8AVxjZluTxiCUWvhs38YSB6mRJfNa+KjOX0TKJfqv995fDqTN7DzgdO/9mirF3gXcZGZvBHYBbyYaPvFOM9sQT0r4C9SwhY/q/EWkTNIz/Q2Uhkq8DzgfeLy8gJl9suzlMcBzwLnApd77C4GtwFVmli9fz3u/EdgYb4OxsbFEAWazWZxzh9YP01Pk9jx3aHkmE3300dHRmttoVKZd23C4BW0DYEs+zZY8vG/96+bNn5rcHY3BWy43y5K9e1hWZ3u1pNPpunH0E8XaGYq1M+bFmskykjD3NZI06a8A5oab2g2sr1XQe38esMrMHvTeF4CLzGyn9/6zwCXAPeXlzWwTsCl+GSYmJhIFmMvlyGazzK0fZqZhcvLQ8nw+OtZMls2r1KhMu7aRyWQWtI16ZcLo6qp1/jNHrmK2rGyz9f6jo6N14+gnirUzFGtnzIs1ncElzH0A4+PjNZclTfr7gWXx85XUqCby3q8GPgG8LZ61xcxm4ucPA9WqhaSdGtT5g+r9RYZJ0v/ozURVOgDrgO2VBbz3I8AXgQ+Z2ZPx7Du89+u892ngMuDRhO8vTWrqrl7V+4sMjaRJ/27g3d77mwAP/Mh7X9mC5zeIqn2u895/y3t/JXADcAfwA+C7ZnZ/wveXFszd1fulfcXqI3Sprb/I0EhUvWNme733G4CLgY+b2S4qztrN7Bbgliqrn5PkPaWDmmjrLyKLQ+J2+ma2h1ILHhlkTdT7i8jioKt00lS9/1xPnlPf/Ip68hQZYOqGQYD6vXmWt+6ZVusekYGm/1hpTK17RBYNJX1pTK17RBYNJX1pTGP1iiwaSvrSWJNj9WrYRpH+pwu50pBLpeCK93LzdR/k9CVprrz8ysP65lFXDiKDQf+N0pS51j13H6D6Xb262CsyEJT0pT10sVdkICjpS3voYq/IQFDSl/Zo4mKvLvSK9J4u5EpblF/sPTXr+NVfn3+xVxd6RfqD/tukbep24awLvSJ9QUlfukMXekX6gqp3pDua7LO/2bF6RSQZJX3pDo3VK9IXEid97/2twFrgXjOrHCqxZplm1pPFp9GFXqB+vX9Fd88ikowLIbS8kvf+cuA/mNl7vPe3AX9sZo83KgOc3Wi9CuGpa9/TcnwAP/rRj0ilHGedtTaaUSzC9FRp+bZtALzijDNqb6NBmXZtwznH2tNPT7yNQYq17vK9e2Dvi4fPP/IoOHJVzfesJZNJk88XWl6vFxRrZwxsrM7BsuWJt3Xyn38GwFV9n4Tb3EBpqMT7gPOByuRdrcyrGq3nvd8IbAQwM7LZbKIAX/nKV+Kc49BBrVgk5Ev1yete1ngowEZl2rYN56DOwXcxxVpveXHpMor7Judv3zlSS5eRyqTnld3yWPS1OefMNVW31Wj5IG1jkGLV521TGZfCJcx9jSRN+iuAZ+Lnu4H1TZZpuJ6ZbQI2xS9D8XeuTxgijI2NMTExEW1oZhq21/tR0Tujo6NMTk72OoymdDLWUCxClTr9cMV7KVZ07nbPdR/ktKzjFa86r+rF3o9c+3tkMhk+f8V7a77fR679PQDu+oPqZRotb+c2Fkus7YhjkGJt5+edF2s6g3vpWTXLL0TSpL8fWBY/X0n1pp/VyjSzngypuXr/qPXOzqhlT43ePH97VYYlDsI/fkEXe0VakPS/ZDNR1QzAOmB7k2WaWU+GmEulohu7zruwbm+ey1KOlHO6yUukRUnP9O8Gvu29HwfeArzDe3+jmX24TplzgVBlnkjz6t3kpRY+Ig0lOtM3s71EF2ofBC40s0crEn61MpPV5iUPXYZSE715hmKR9Usdb12BOnYTqZC4nb6Z7aHUEqfpMs2sJ1JTfJPXYTdwxTd5qc5fpD7dkSsDpeHF3rI6f0A3eIlUUNKXgeNSqSiBV0viTdb5z1UBnZZ1hG0/Vh8/MjSU9GVxaaJjN1UBST+ZOwE5YwmlE5B04/WS0jdcFpe5Ov+5i71VRvBqptnn3D/i245I6WKwdEz5CcjbVjjCP36BcNenO/p905m+LCrldf5L9u5h5shVh1fdNKgC0i8B6Zpa16Ce+Amc+YqOvKWSviw6c3X+y0ZHma3WZUSjKiBdDJZuqXkCsqNjb6nTFhk+jaqANMqXdEvN+07GO/aWOtOXodOw2WcLo3ypBZDU0/A7Uuu+k9Nf1rGYlPRlKNVt9tngBjBQCyBprJnvSFPXoNpMSV+kQjO9fareXxpq8jvS8BpUm+mURKSKhr19qt5fGunT74iSvkgSLXT8prb+i1PDv28T35FeUNIXSaJBC6Dy+ty3H5Huyk030j1N/X2buVGwB1SnL5KAOn4bck38fZu6NtQDSvoiCbWz47d5/a6o9U9fqNvcssm/b93vSI8o6Yt0gjp+66lGB9NG7ecb/m2avJejH7Wc9L33twJrgXvN7MYaZUaBzwNp4ABwJVAEnogngGvMbGuSoEX6XhNt/VUF1BmNEnZTB9tGf5tm/r59qqWk772/HEib2Xne+9u892vM7PEqRd8F3GRmX/fe3wK8GXgauNPMPrDwsEX6W1P1uRrvN5GGd7k2StjNHGwb/G36tb6+Ga2e6W+gNNThfcD5wGFJ38w+WfbyGOA5okHQL/XeXwhsBa4ys3zlut77jcDGeDuMjY21GGJJJpM5tH6YniK357nE2+qkdDrN6Ohor8NoimJt0arX1Vw0e9pLOfDQd2B2pjRzZAnLTzuDkbK4Q7HIa5ZnODULy3b9nOyaVxyWXDKZ6F+53udtVKbZbTjcgreRtEwoFtl/+1+WztLvNTInvYSVv/7+Q/tkanI301US9pK9e1g2OtpwOTT/t6n3923VvO9rJsvIAnJfPXWTvvf+U0B5JxAXALfGz3cD6xusfx6wyswe9N4XgIvMbKf3/rPAJcA9leuY2SZgU/wyTExMNPVBqhkbG2Nu/TAzDV242y2J0dFRJvs0tkqKtX3CsSfB8SfOryI4/kQOHnsSU3Hcc1UR7x91LHFw4AufhhNOwlXU++fz0flTvc/bqEyz28hkMgveRtIyYduPCU9tL52lz86Qf2o7kz94CBefpYfR1VXr22eOXMXs5GTD5dDc36bd5n1f0xncAnLf+HjtDtvqJn0zu6r8tff+ZmBZ/HIlddr5e+9XA58A3hbP2mJmc4fNh4E1daMWWeSa6ndF9f7zNVMl1qi+vYn6+EGuvmmk1eqdzURVOg8C64CfVCvkvR8Bvgh8yMyejGff4b3/KPBD4DLgY4kiFllEGva7MoT1/nXr7JtoNdPoYNpsQu/H5pbt0GrSvxv4tvd+HHgLcK73fi3wTjP7cFm53yCq+rnOe38dcAtwA/A5wAH3mNn9C45eZLFrsunnYuniuWHLmiZbzTQ6mC7WhN6MlpK+me313m8ALgY+bmaTwCTw4YpytxAl+krnJIxTZDg1SHKLrq1/g+qsxVzt0i0tt9M3sz2UWvCISAcNXXcPTVRnDfNZejsMzx25OhOQAdWO7h76RcOqqAG+03VQDE0mdNkRGF3V6zBE2qvJ7nv7oZvnQe6ZcjEZnjN9gGNOgAP7IZ/rdSQi7dFHQzsu+E5ZFndTyX4xVEnfpdOE48bhmScbFxYZAO0a2nGhLYCaOrAMcM+Ui8nQHT7dyiPhiMHoRkCkGQsd2rHZAV/mDgxvXcHhVURlB5aUc/MPLHP6dCSpYTN0SR+IvnzpdK+jEOmORsm2iYRdfmB42wp3+IGhmfFgVV/fF4aqemeOy2QIx47Dzqd6HYpI5zWq92+m2qVRFVGLd8qqvr53hjLpA7gjjyLsfREO7Ot1KCId1TDZNtNMstGBocU7ZVVf3ztDm/QBOO5E2P44FAu9jkSko+om22YSdoMDg87iB8dQJ32XzRKOOR6efabXoYj0TFMJu9meKXUW3/eGOukDuKNWE/ZNwsH9vQ5FpGcaJeymuoGWgTD0SR+A48Zh+08hdP8uRZFB0bAbaBkIOkwDbmQJjB3X6zBERDpOSX/OqqNh6fJeRyEi0lFK+jHnHBx/EjjX61BERDpGSb+MW7IEjj6212GIiHRMyxdyvfe3AmuBe83sxhplMsAT8QRwjZlt9d5fD1wCfN/Mrk4Yc2etPgb2TcLMdK8jERFpu5bO9L33lwNpMzsPON17v6ZG0XOAO81sQzxt9d6/mmhQ9dcCz3nvL1pQ5B1yqJoHVfOIyOLT6pn+BkpDJd5HlMQfr1LuXOBS7/2FwFbgKuAC4O/NLHjvv0Y0sPphg6N77zcCGwHMjLGxsRZDLMlkMonXz2dSFCeeTfzerUin04yODkbPn4q1MxRrZwxsrJksIwvIffXUTfre+08BLyubdQFwa/x8N7C+xqoPAReZ2U7v/WeJqnRWANvK1q3aRtLMNgGb4pdhYmKi0WeoaWxsjKTrh1QWpqZhdibx+zdrdHSUyQFp96xYO0OxdsbAxprO4BaQ+8bHx2suq5v0zeyq8tfe+5uBZfHLldSuHtpiZnPZ8mFgDbC/yXX7gkulCMefBE89ASH0OhwRkbZoNfFuJqrSAVgHbK9R7g7v/TrvfRq4DHi0hXX7hlu2PBpiUURkkWg16d8NvNt7fxPggXu992u995WteG4A7gB+AHzXzO4HvgO8Kv618EHgzoWF3h1u1dFwpAZUF5HFwYUWqy6896uAi4EHzGxXi+suA34FeMTMnmhUHgg7duxoKb5yC6nTnxdEsRhV80xPLXhb1QxsvWOfU6ydoVg747A6/ZeelXhbcZ1+1SaILbfTN7M9lFrwtLruFHBXknV7yaVShPFT4MmfQkF974vI4Orri6n9xGVH4IRTUPt9ERlkSvotcCtWwjHqjVNEBpeSfovc6mPgiMG42UNEpJKSfhLHnwgjS3sdhYhIy5T0E3CpNJx4CqTSvQ5FRKQlSvoJuZEl0cDQIiIDREl/AdzKIzXwiogMFCX9BXKjq+CU0yGT7e/TKvIAAAn/SURBVHUoIiINKem3gVu6HF7yUli+stehiIjUpaTfJi6TgZNOjUbeEhHpU0r6beScwx1zPIy/RC17RKQvKel3gDviSDjlDLXlF5G+o6TfIW7JEnjJ6bp7V0T6ipJ+B7lUGjd+Cpx8Gixb0etwRERa71pZWueWr4RTVhIOHoDdz8GB/b0OSUSGlJJ+F7nlK2D5aYSpg/DCc3BgX69DEpEh03LS997fCqwF7jWzymES58q8D7gyfnkU8D3gauCJeAK4xsy2thzxIuCWLYeTTiVMH4QXnu91OCIyRFpK+t77y4G0mZ3nvb/Ne7/GzB6vLGdmtwC3xOt8ArgdOAe408w+0Ia4FwW3dDmc+BKyR6yE7T+DA3thagpobQhLEZFmtXqmv4HSUIn3AecDhyX9Od77E4HjzOxh7/1vAZd67y8EtgJXmVm+yjobgY0AZsbY2FiLIZZkMpkFrd8tmUyGY14WjYcZ8nmK+/cS9k1S3LcXiv01PGM6nWZ0dDBaJCnWzlCsnTEv1kyWkQ7lrrpJ33v/KeBlZbMuAG6Nn+8G1jfY/tXEZ/zAQ8BFZrbTe/9Z4BLgnsoVzGwTsCl+GRYysHm7BkbvtKpxLjuCsHQlHDwQ/wI4CDPT0OJA9u02sANN9znF2hkDG2s6g1tA7ooHRq+qbtI3s6vKX3vvbwaWxS9XUqfJp/c+BVwIXBfP2mJmM/Hzh4E1daMWnHOwYmU0AaFYhNlpmJ6G6SmYmeqLA4GIDI5Wq3c2E1XpPAisA35Sp+zrge+Z2VxGusN7/1Hgh8BlwMdafO+h51IpWLo8mmIhhCjxz0zD7AzkZktTob+qhkSk91pN+ncD3/bejwNvAc713q8F3mlmH64o+ybggbLXNwCfAxxwj5ndnzBmKeOcg6XLoqlCKBQgNwO5HMzOHQjykM9BPh9NumgsMlRcaLFqwHu/CrgYeMDMdnUkqpKwY8eOxCsPdJ1+l4R8fBAoxAeBQj76hVAsRs+LBSgU48cCo0esZPLFF3sSa6sGtj63zynWzjisTv+lZyXeVlynX3V0p5bb6ZvZHkoteGTAuUwGMs1/DUbGxnATE9H1hWIxup4Qyh6LIb7GED8GOPRr4tB8qlyHCFWfNq3KyUt69WoYWVaxzTC/fKgRW+VnOPQZQ9lnLptfLJaei/Qx3ZEribhUClL93XVTemwM1+XupcKhg1/ZQbFY+qVU+cuJYvSryi1bAQenol9bodjVmGW4KOmLtJFzDly65fEUsmNjuNGjgbiVVqEAhVz8mC9dg8nl4msyOV2TkUSU9EX6zKFfUdn64y6HEOKDQS5usZWLLtzPzkYtuQqH3fsooqQvMqicc9GBIZuFZcsPWx6KhSj5z7Xcmp0pNe3VtYehpaQvski5VPqw+zog/oUwO1u6uW9uyud6FKl0k5K+yJBxzsGSJdFUJhQKUfKfnio9zs6g6waLi5K+iADg0mlYviKaYqFYjH8JTJUOBq5q828ZEEr6IlKTS6Wi6wVl1wyyq1fDjqfVB9SAUtIXkZa4VCoaC6JWH1CHDgQzfdc1uCjpi0gbzOsDanTVofkhNzv/YvHMdHQRWdcJekZJX0Q6xmVHIDsCK488NC/qInxm/pSbjX4Z6G7kjlPSF5GuiroIr9EzbC43/0CQz8U3nc3qZrM2UdIXkb7h5m42iwcOKheKxdJBoLwrinw+6rJi7rl+LdSlpC8iA8GlUjCyJJrqCMXCoQNA5qhReO65Uh9G1R6H7GKzkr6ILCoulYaRNIwsIXXkUbjZ+tVCIYSyA0Hh8ANDsWx++fMB/UWhpC8iQ805B5lsNLUgHOoyu3ioi+xD3WgXK+cVgRCNN0HZ2BOUxmhwI0shOxW9brGX1lYkSvre++OAu8zs9XXKZIEvAauBW83stmrzkry/iEivHeoNtU2nztl4gKJOa3mEiXi4xNuBFQ2KXgNsNrNfAq7w3h9RY56IiHRJkmNUAbgS+IcG5TYAH4yfPwD8Qo153yxfyXu/EdgIYGaMjY0lCDGSyWQWtH63DEqcoFg7RbF2hmKt8j6NCnjvPwW8rGzWN8zsBu99o1VXAM/Ez3cDx9WYN4+ZbQI2xS/DQgYM18Do7adYO0OxdsawxhoPjF5Vw6RvZlclfN/9wDJgElgZv642T0REuqSTo0ZvBs6Pn68DtteYJyIiXdKW687e+18G1prZX5bNvh34svf+9cBa4HtEVTuV80REpEtc6GAf2N77caIz+6+Z2WSteXWEHTt2JH7/QanPG5Q4QbF2imLtjGGNNa7TrzraTUdvzjKzHYA1miciIt3RyTp9ERHpMx2t3mmDvg5ORKSPVa3e6fczfbeQyXu/eaHb6MY0KHEqVsWqWAcq1qr6PemLiEgbKemLiAyRxZ70NzUu0hcGJU5QrJ2iWDtDsVbo9wu5IiLSRov9TF9ERMpo5CwRWTS896uBVwP/YmZ9fStur2JdlNU73vtbifr2udfMbux1PLV47zPAE/EEcI2Zbe1hSFWVj5TW76OfVcR6IlH/Tj+NF7/dzJ7vXXQR7/0o8HkgDRwgGp/iFvrwO1sj1p/Sh9/ZeICne+PpHcAvA39Cf+7XarFupgv7ddFV73jvLwfSZnYecLr3fk2vY6rjHOBOM9sQT33xz1OuykhpfTv6WZVYXwd8tGz/9jzhx94F3GRmbwR2Ef3T9+t3tjLWD9K/39lzgP9qZh8FvkaUSPt1v1bG+p/o0n5djNU7Gyj17XMfUeduj/csmvrOBS713l8IbAWuMrN8j2OqVDlS2gYajH7WQ5Wxngv8O+/9fwa+amZ/0LPIypjZJ8teHgP8R+Av4td99Z2tEutT9Ol31sz+CcB7/wbgtUS/RvsyF1SJ9S66tF8X3Zk+TYzO1UceAi4ys9cCWeCSHsdzGDPbW9Ebat/u3yqxfoXoIPUa4Dzv/Tk9CawG7/15wCqiRNqX+3ROWaxfp4+/s957R3Tg30PUjUvf7teKWP+FLu3XxZj050bngmh0rn7+jFvMbGf8/GGgn35+1jJI+/f/mdk+MysQ/VP1zf6NL+J9guhnfV/v04pY+/o7a2bBzK4GtgC/SB/v14pYx7u1X/tqJ7TJII3OdYf3fp33Pg1cBjza64CaMEj792ve+xO898uBNwI/7HVAAN77EeCLwIfM7En6eJ9WibVvv7Pe+w94738tfnkU0UXcft2vlbH+dbf262Ks078b+HY8WMtbiOp1+9UNwOeIOke6x8zu73E8zbidwRn97Hqi6w2zwF+b2U96HM+c3wDWA9d5768DPg28u0+/s5WxfhO4g/78zm4CzHv/m0QH+LuBB/p0v1bG+gbg7+jCfl2sTTZXARcDD5jZrl7Hs9i0OPqZNEHf2c7Qfj3cokz6IiJS3WKs0xcRkRqU9EVEhoiSvojIEFHSFxEZIkr6IiJD5P8DQAcskUp0cQoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_acf(sale,lags=35).show()\n",
    "\n",
    "#解读：自相关系数长期大于零，没有趋向于零，说明序列间具有很强的长期相关性。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 平稳性检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列的ADF检验结果为： (1.813771015094526, 0.9983759421514264, 10, 26, {'1%': -3.7112123008648155, '5%': -2.981246804733728, '10%': -2.6300945562130176}, 299.4698986602418)\n"
     ]
    }
   ],
   "source": [
    "#方法：单位根检验\n",
    "\n",
    "print('原始序列的ADF检验结果为：',ADF(sale.销量))\n",
    "\n",
    "#解读：P值大于显著性水平α（0.05），接受原假设（非平稳序列），说明原始序列是非平稳序列。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "第一个是adf检验的结果。\n",
    "第二个是统计量的P值。\n",
    "第三个是计算过程中用到的延迟阶数。\n",
    "第四个是用于ADF回归和计算的观测值的个数。\n",
    "第五个是配合第一个一起看的，是在99%，95%，90%置信区间下的临界的ADF检验的值。\n",
    "\n",
    "原文链接：https://blog.csdn.net/qq_36707798/article/details/88640684"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、一阶差分序列的检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x258d77b7988>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列的ADF检验结果为： (-3.1560562366723537, 0.022673435440048798, 0, 35, {'1%': -3.6327426647230316, '5%': -2.9485102040816327, '10%': -2.6130173469387756}, 287.5909090780334)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "d1_sale=sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#时序图\n",
    "plt.figure(figsize=(10,5))\n",
    "d1_sale.plot()\n",
    "plt.show()\n",
    "#解读：在均值附件比较平稳波动\n",
    "\n",
    "#自相关图\n",
    "plot_acf(d1_sale,lags=34).show()\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#平稳性检验\n",
    "print('原始序列的ADF检验结果为：',ADF(d1_sale.销量))\n",
    "\n",
    "#解读：P值小于显著性水平α（0.05），拒绝原假设（非平稳序列），说明一阶差分序列是平稳序列。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 白噪声检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "一阶差分序列的白噪声检验结果为： (array([11.30402222]), array([0.00077339]))\n"
     ]
    }
   ],
   "source": [
    "print('一阶差分序列的白噪声检验结果为：',acorr_ljungbox(d1_sale,lags=1))#返回统计量、P值\n",
    "\n",
    "#解读：p值小于0.05，拒绝原假设（纯随机序列），说明一阶差分序列是非白噪声。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 四、定阶"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：人工识图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:4: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  after removing the cwd from sys.path.\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:9: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if __name__ == '__main__':\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\regression\\linear_model.py:1358: RuntimeWarning: invalid value encountered in sqrt\n",
      "  return rho, np.sqrt(sigmasq)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:13: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  del sys.path[0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "d1_sale=sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#自相关图\n",
    "plot_acf(d1_sale,lags=34).show()\n",
    "\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(d1_sale,lags=20).show()\n",
    "\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(d1_sale,lags=34).show()\n",
    "\n",
    "#解读：自相关图，1阶截尾；偏自相关图，拖尾。则ARIMA(p,d,q)=ARIMA(0,1,1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：BIC"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    模型调优的方法：AIC和BIC\n",
    "    值越小越好\n",
    "    参数调优的方法非常多，用不同方法得出的结论可能不同"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "qmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "pmax\n",
    "qmax"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:695: RuntimeWarning: divide by zero encountered in true_divide\n",
      "  invmacoefs = -np.log((1-macoefs)/(1+macoefs))\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:668: RuntimeWarning: invalid value encountered in true_divide\n",
      "  newparams = ((1-np.exp(-params))/(1+np.exp(-params))).copy()\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:669: RuntimeWarning: invalid value encountered in true_divide\n",
      "  tmp = ((1-np.exp(-params))/(1+np.exp(-params))).copy()\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:695: RuntimeWarning: divide by zero encountered in log\n",
      "  invmacoefs = -np.log((1-macoefs)/(1+macoefs))\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tools\\numdiff.py:243: RuntimeWarning: invalid value encountered in subtract\n",
      "  **kwargs)).imag/2./hess[i, j]\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\kalmanf\\kalmanfilter.py:225: RuntimeWarning: invalid value encountered in log\n",
      "  Z_mat.astype(complex), R_mat, T_mat)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\kalmanf\\kalmanfilter.py:225: RuntimeWarning: invalid value encountered in true_divide\n",
      "  Z_mat.astype(complex), R_mat, T_mat)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tools\\numdiff.py:243: RuntimeWarning: invalid value encountered in multiply\n",
      "  **kwargs)).imag/2./hess[i, j]\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:695: RuntimeWarning: invalid value encountered in log\n",
      "  invmacoefs = -np.log((1-macoefs)/(1+macoefs))\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\tsatools.py:693: RuntimeWarning: invalid value encountered in double_scalars\n",
      "  tmp[kiter] = (macoefs[kiter]-b *macoefs[j-kiter-1])/(1-b**2)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n"
     ]
    }
   ],
   "source": [
    "bic_matrix=[]\n",
    "for p in range(pmax+1):\n",
    "    tmp=[]\n",
    "    for q in range(qmax+1):\n",
    "        try:\n",
    "            tmp.append(ARIMA(sale,(p,1,q)).fit().bic)\n",
    "        except:\n",
    "            tmp.append(None)\n",
    "    bic_matrix.append(tmp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>432.068472</td>\n",
       "      <td>422.510082</td>\n",
       "      <td>426.088911</td>\n",
       "      <td>426.595507</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>423.628276</td>\n",
       "      <td>426.073601</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>426.774824</td>\n",
       "      <td>427.395856</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>430.317524</td>\n",
       "      <td>431.924894</td>\n",
       "      <td>434.761700</td>\n",
       "      <td>436.478109</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0           1           2           3\n",
       "0  432.068472  422.510082  426.088911  426.595507\n",
       "1  423.628276  426.073601         NaN         NaN\n",
       "2  426.774824  427.395856         NaN         NaN\n",
       "3  430.317524  431.924894  434.761700  436.478109"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bic_matrix=pd.DataFrame(bic_matrix)\n",
    "bic_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0  0    432.068472\n",
       "   1    422.510082\n",
       "   2    426.088911\n",
       "   3    426.595507\n",
       "1  0    423.628276\n",
       "   1    426.073601\n",
       "2  0    426.774824\n",
       "   1    427.395856\n",
       "3  0    430.317524\n",
       "   1    431.924894\n",
       "   2    434.761700\n",
       "   3    436.478109\n",
       "dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bic_matrix.stack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "用BIC方法得到最优的p值是0,q值是1\n"
     ]
    }
   ],
   "source": [
    "p,q=bic_matrix.stack().idxmin() #最小值的索引\n",
    "print('用BIC方法得到最优的p值是%d,q值是%d'%(p,q))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：AIC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:512: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  \"Check mle_retvals\", ConvergenceWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:492: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n",
      "  'available', HessianInversionWarning)\n"
     ]
    }
   ],
   "source": [
    "pmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "qmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "\n",
    "aic_matrix=[]\n",
    "for p in range(pmax+1):\n",
    "    tmp=[]\n",
    "    for q in range(qmax+1):\n",
    "        try:\n",
    "            tmp.append(ARIMA(sale,(p,1,q)).fit().aic)\n",
    "        except:\n",
    "            tmp.append(None)\n",
    "    aic_matrix.append(tmp)\n",
    "aic_matrix=pd.DataFrame(aic_matrix)\n",
    "p,q=aic_matrix.stack().idxmin() #最小值的索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "用AIC方法得到最优的p值是0,q值是1\n"
     ]
    }
   ],
   "source": [
    "print('用AIC方法得到最优的p值是%d,q值是%d'%(p,q))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 五、建模及预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （1）建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "        <td>Model:</td>              <td>ARIMA</td>              <td>BIC:</td>          <td>422.5101</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <td>Dependent Variable:</td>       <td>D.销量</td>          <td>Log-Likelihood:</td>     <td>-205.88</td> \n",
       "</tr>\n",
       "<tr>\n",
       "         <td>Date:</td>        <td>2020-06-29 09:12</td>        <td>Scale:</td>          <td>1.0000</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "   <td>No. Observations:</td>         <td>36</td>               <td>Method:</td>         <td>css-mle</td> \n",
       "</tr>\n",
       "<tr>\n",
       "       <td>Df Model:</td>              <td>2</td>               <td>Sample:</td>       <td>01-02-2015</td>\n",
       "</tr>\n",
       "<tr>\n",
       "     <td>Df Residuals:</td>           <td>34</td>                  <td></td>           <td>02-06-2015</td>\n",
       "</tr>\n",
       "<tr>\n",
       "      <td>Converged:</td>           <td>1.0000</td>      <td>S.D. of innovations:</td>   <td>73.086</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "    <td>No. Iterations:</td>        <td>15.0000</td>             <td>HQIC:</td>          <td>419.418</td> \n",
       "</tr>\n",
       "<tr>\n",
       "         <td>AIC:</td>             <td>417.7595</td>               <td></td>                <td></td>     \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "       <td></td>       <th>Coef.</th>  <th>Std.Err.</th>    <th>t</th>    <th>P>|t|</th> <th>[0.025</th>  <th>0.975]</th> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>      <td>49.9564</td>  <td>20.1390</td> <td>2.4806</td> <td>0.0182</td> <td>10.4847</td> <td>89.4281</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>ma.L1.D.销量</th> <td>0.6710</td>   <td>0.1648</td>  <td>4.0712</td> <td>0.0003</td> <td>0.3480</td>  <td>0.9941</td> \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>    <th>Real</th>   <th>Imaginary</th> <th>Modulus</th> <th>Frequency</th>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>MA.1</th> <td>-1.4902</td>  <td>0.0000</td>   <td>1.4902</td>   <td>0.5000</td>  \n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary2.Summary'>\n",
       "\"\"\"\n",
       "                           Results: ARIMA\n",
       "====================================================================\n",
       "Model:              ARIMA            BIC:                 422.5101  \n",
       "Dependent Variable: D.销量             Log-Likelihood:      -205.88   \n",
       "Date:               2020-06-29 09:12 Scale:               1.0000    \n",
       "No. Observations:   36               Method:              css-mle   \n",
       "Df Model:           2                Sample:              01-02-2015\n",
       "Df Residuals:       34                                    02-06-2015\n",
       "Converged:          1.0000           S.D. of innovations: 73.086    \n",
       "No. Iterations:     15.0000          HQIC:                419.418   \n",
       "AIC:                417.7595                                        \n",
       "----------------------------------------------------------------------\n",
       "               Coef.    Std.Err.     t      P>|t|     [0.025    0.975]\n",
       "----------------------------------------------------------------------\n",
       "const         49.9564    20.1390   2.4806   0.0182   10.4847   89.4281\n",
       "ma.L1.D.销量     0.6710     0.1648   4.0712   0.0003    0.3480    0.9941\n",
       "-----------------------------------------------------------------------------\n",
       "                 Real           Imaginary          Modulus          Frequency\n",
       "-----------------------------------------------------------------------------\n",
       "MA.1           -1.4902             0.0000           1.4902             0.5000\n",
       "====================================================================\n",
       "\n",
       "\"\"\""
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#创建模型\n",
    "model=ARIMA(sale,(0,1,1)).fit()\n",
    "#查看模型报告\n",
    "model.summary2()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （2）残差检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:4: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  after removing the cwd from sys.path.\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:9: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if __name__ == '__main__':\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:12: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if sys.path[0] == '':\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "resid=model.resid\n",
    "\n",
    "#自相关图\n",
    "plot_acf(resid,lags=35).show()\n",
    "\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(resid,lags=20).show()\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(resid,lags=35).show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- QQ图\n",
    "\n",
    "线性即正态分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:1: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "qqplot(resid, line='q', fit=True).show() \n",
    "\n",
    "#解读：残差服从正态分布，均值为零，方差为常数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- D-W检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 德宾-沃森检验,简称D-W检验，是目前检验自相关性最常用的方法，但它只适用于检验一阶自相关性。\n",
    "    因为自相关系数ρ的值介于-1和1之间，所以 0≤DW≤４。\n",
    "- 并且DW＝O ＜ ＝＞ ρ＝１　　即存在正自相关性\n",
    "- DW＝４   ＜＝＞  ρ＝－１　即存在负自相关性\n",
    "- DW＝２   ＜＝＞  ρ＝０　　即不存在（一阶）自相关性\n",
    "\n",
    "因此，当DW值显著的接近于O或４时，则存在自相关性，而接近于２时，则不存在（一阶）自相关性。\n",
    "\n",
    "原文链接：https://blog.csdn.net/u010414589/article/details/49622625"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "D-W检验的结果为： 1.9734861502397292\n"
     ]
    }
   ],
   "source": [
    "print('D-W检验的结果为：',sm.stats.durbin_watson(resid.values))  \n",
    "\n",
    "#解读：不存在一阶自相关"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Ljung-Box检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ljung-Box test是对randomness的检验,或者说是对时间序列是否存在滞后相关的一种统计检验。对于滞后相关的检验，我们常常采用的方法还包括计算ACF和PCAF并观察其图像，但是无论是ACF还是PACF都仅仅考虑是否存在某一特定滞后阶数的相关。LB检验则是基于一系列滞后阶数，判断序列总体的相关性或者说随机性是否存在。\n",
    "时间序列中一个最基本的模型就是高斯白噪声序列。而对于ARIMA模型，其残差被假定为高斯白噪声序列，所以当我们用ARIMA模型去拟合数据时，拟合后我们要对残差的估计序列进行LB检验，判断其是否是高斯白噪声，如果不是，那么就说明ARIMA模型也许并不是一个适合样本的模型。\n",
    "\n",
    "检验的结果就是看最后一列前十二行的检验概率（一般观察滞后1~12阶），如果检验概率小于给定的显著性水平，比如0.05、0.10等就拒绝原假设，其原假设是相关系数为零。\n",
    "\n",
    "原文链接：https://blog.csdn.net/u010414589/article/details/49622625"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "残差序列的白噪声检验结果为： (array([0.00390451]), array([0.95017574]))\n"
     ]
    }
   ],
   "source": [
    "# 方法一\n",
    "print('残差序列的白噪声检验结果为：',acorr_ljungbox(resid,lags=1))#返回统计量、P值\n",
    "\n",
    "#解读：残差是白噪声"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       confint      qstat  pvalues(>Q)\n",
      "lag                                   \n",
      "1.0   0.009995   0.003905     0.950176\n",
      "2.0   0.151097   0.922486     0.630500\n",
      "3.0   0.119393   1.513403     0.679180\n",
      "4.0  -0.212564   3.445001     0.486290\n",
      "5.0   0.034075   3.496238     0.623957\n",
      "6.0  -0.053348   3.626018     0.727135\n",
      "7.0  -0.157088   4.790082     0.685563\n",
      "8.0   0.082868   5.125587     0.744073\n",
      "9.0   0.180436   6.775151     0.660516\n",
      "10.0 -0.119683   7.528820     0.674754\n",
      "11.0  0.051306   7.672861     0.742274\n",
      "12.0 -0.062678   7.896789     0.793143\n",
      "13.0 -0.020659   7.922174     0.848633\n",
      "14.0 -0.078650   8.306819     0.872737\n",
      "15.0 -0.024755   8.346738     0.909130\n",
      "16.0  0.001821   8.346965     0.937860\n",
      "17.0  0.081164   8.821273     0.945702\n",
      "18.0  0.181184  11.316172     0.880461\n",
      "19.0 -0.036607  11.424008     0.908751\n",
      "20.0  0.049095  11.630087     0.928220\n",
      "21.0  0.095998  12.470555     0.926035\n",
      "22.0 -0.186408  15.865932     0.822483\n",
      "23.0 -0.066136  16.326204     0.840953\n",
      "24.0 -0.160985  19.280654     0.736861\n",
      "25.0 -0.218461  25.215930     0.450326\n",
      "26.0  0.054818  25.627020     0.483747\n",
      "27.0 -0.067221  26.313861     0.501239\n",
      "28.0 -0.073881  27.247244     0.504816\n",
      "29.0  0.025513  27.374450     0.551510\n",
      "30.0 -0.068816  28.454181     0.546382\n",
      "31.0 -0.001378  28.454701     0.597610\n",
      "32.0  0.008883  28.481688     0.645346\n",
      "33.0 -0.015106  28.585737     0.686710\n",
      "34.0 -0.001370  28.587021     0.730002\n",
      "35.0 -0.001850  28.591702     0.769544\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\stattools.py:541: FutureWarning: fft=True will become the default in a future version of statsmodels. To suppress this warning, explicitly set fft=False.\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 方法二\n",
    "confint,qstat,pvalues = sm.tsa.acf(resid.values, qstat=True) #qstat is Ljung-Box Q-Statistic. confint is  Confidence intervals for the ACF\n",
    "data = np.c_[range(1,36), confint[1:], qstat, pvalues]\n",
    "table = pd.DataFrame(data, columns=['lag', \"confint\", \"qstat\", \"pvalues(>Q)\"])\n",
    "print(table.set_index('lag'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "【补充说明】\n",
    "\n",
    "    如果残差不是白噪声，可以考虑取另外一组p、q值；或者该数据不适应ARIMA模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （3）预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "未来7天的销量预测：\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(array([4873.9667493 , 4923.92317644, 4973.87960359, 5023.83603073,\n",
       "        5073.79245787, 5123.74888501, 5173.70531215]),\n",
       " array([ 73.08574293, 142.32679918, 187.542821  , 223.80281869,\n",
       "        254.95704265, 282.69857718, 307.95109593]),\n",
       " array([[4730.72132537, 5017.21217324],\n",
       "        [4644.96777602, 5202.87857687],\n",
       "        [4606.30242887, 5341.4567783 ],\n",
       "        [4585.19056646, 5462.48149499],\n",
       "        [4574.08583666, 5573.49907907],\n",
       "        [4569.66985525, 5677.82791477],\n",
       "        [4570.13225512, 5777.27836918]]))"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#预测\n",
    "print('未来7天的销量预测：')\n",
    "model.forecast(7) #预测、标准差、置信区间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2015-02-07    4873.966749\n",
       "2015-02-08    4923.923176\n",
       "2015-02-09    4973.879604\n",
       "2015-02-10    5023.836031\n",
       "2015-02-11    5073.792458\n",
       "2015-02-12    5123.748885\n",
       "2015-02-13    5173.705312\n",
       "Freq: D, dtype: float64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forecast=pd.Series(model.forecast(7)[0],index=pd.date_range('2015-2-7',periods=7,freq='D'))\n",
    "forecast"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x258d7331a08>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data=pd.concat((sale,forecast),axis=0)\n",
    "data.columns=['销量','未来7天销量']\n",
    "plt.figure(figsize=(10,5))\n",
    "data.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
